package cn.ming.leo.utils;

public class Constant {

	public final static String AssetTag = "asset";

	// public final static String AssetTag = "asset";

	public static final String DbSource = "db";
	public static final String CacheSource = "cache";

	public static final String OnlineDate = "2016-12-12 00:00:00";

	/**
	 * Tips
	 */
	public static final String KEFU_MOBILE = "400-6868-998";
	public static final String Tips_User_Error = "用户状态异常，请联系客服:" + KEFU_MOBILE;
	public static final String Tips_User_Pass = "用户名或者密码错误";
	public static final String Tips_User_NotFound = "用户名或者密码错误";
	public static final String Tips_User_NotExist = "用户不存在";
	public static final Integer VIRTUAL_DATE = 5;

	public static final int TICKET_VIRTUAL_DATE = 5;

	public static final String signType = "MD5";

	public static final String CONTRACT_SUFFIX = ".html";

	/**
	 * 大额企业用户
	 */
	public static final String BIG_PERSON = "18750628620#13332953135#13859784700#13689512544#18664365252";

	public enum SignaEnum {
		
		INSTANCE;


	};
	
	
	public enum DepositError {

		FORMAT(-2, "请输入大于100的整数的金额"), CHULIZHONG(-3, "正在处理中 "), REPEAT(-1, "充值处理中");

		public final int value;
		public final String alias;

		DepositError(int value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 文档类型(对应Doc的type)
	 * 
	 */
	public enum DocType {

		GongGao(1, "公告"),

		MeiTiBaoDao(2, "媒体报道"),

		QA_MIN(30, "常见问题(默认)"),

		QA_MAX(39, "常见问题"),

		LunBo_APP_Min(60, "APP-Banner-活动(默认)"),

		LunBo_APP_Message(61, "APP-Banner-信息展示（公告）"),

		FAQ_TAG(70, "常见问题-标签"),

		// LunBo_PC_Max(79, ""),
		//
		// LunBo_Mobile_Min(80, ""),
		//
		LunBo_APP_Max(69, "APP-Banner-活动"),
		//
		// LunBo_Mobile_Max(89, ""),
		//
		// ZHUCEDENGLU(90, ""),
		//
		// WaiLian_Min(40, ""),
		//
		// WaiLian_Max(59, ""),
		//
		// CHONGZHITIXIAN(91, ""),
		//
		// TOUZISHUHUI(92, ""),
		//
		// TIYANJIN(93, ""),
		//
		// ZHANGHUGUANLI(94, ""),
		//
		DISCOVERY(95, "发现");

		public final Integer value;
		public final String alias;

		DocType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * 用户状态(对应user_info的status)
	 */
	public enum UserStatus {
		ZhengChang("0", "正常"),

		SuoDing("3", "锁定"),

		XianZhiJiaoYi("1", "限制交易"),

		XianZhiTiXian("2", "限制提现");

		public final String value;
		public final String alias;

		UserStatus(String value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 项目状态(对应project的status)
	 * 
	 */
	public enum ProjectStatus {

		INIT(0, "初始"),

		XiaoShouZhong(1, "销售中"),

		ShouQin(2, "售罄"),

		XuHuanKuan(3, "到达还款日"),

		YiYiChu(4, "已移除");

		public final Integer value;
		public final String alias;

		ProjectStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 产品专属
	 * 
	 */
	public enum IsMember {

		Member(1, "会员专享"),

		Common(0, "常规");

		public final Integer value;
		public final String alias;

		IsMember(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 产品状态(对应product的status)
	 * 
	 */
	public enum ProductStatus {

		DEFAULT(0, "待配置"),

		WaitForPutAway(1, "待上架"),

		ShangJia(2, "上架"),

		Qingsuan(3, "清算窗口"),

		YiHuanKuan(4, "已还款"),

		HuanKuanZhong(5, "还款中"),

		YiDaoQi(6, "已到期"),

		ShouQin(7, "售罄"),

		ZhunBeiXiaoShou(8, "准备销售"),

		XiaoShouZhong(9, "销售中"),

		YiJieZhi(10, "已截止"),

		BuFenHuanKuan(11, "部分还款"),

		WaitForAudit(12, "待审核"),

		AuditNotThrough(13, "审核不通过"),

		ShelfCancle(14, "下架失效");

		public final Integer value;
		public final String alias;

		ProductStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * @author zarek.wu 自动投资状态
	 * 
	 */
	public enum AutoInvestStatus {

		Close(0, "关闭"), Open(1, "开启"), Reset(2, "等待重新排序"), ResetAgain(3, "条件不满足需重拍");

		public final Integer value;
		public final String alias;

		AutoInvestStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author dongyang.wu 普惠产品状态(对应product的status)
	 * 
	 */
	public enum PuHuiProductStatus {

		NoAsset(0, "未生成资产"), HavedAsset(1, "已生成资产"), NOInvest(2, "未生成明细"), HavedInvest(3, "已生成明细"), Editor(4, "编辑完成"), Audit(
				5, "审核通过"), Review(6, "复核通过"), NoPush(7, "未推送明细"), Pushed(8, "已推送明细"), ConfirmBack(9, "已确认回传");

		public final Integer value;
		public final String alias;

		PuHuiProductStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 资产类型(对应Asset的type)
	 * 
	 */
	public enum AssetType {

		BaoLi(1, "国宝"),

		Choiceness(11, "优享");

		public final Integer value;
		public final String alias;

		// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
		AssetType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * 资产状态(对应Asset的status)
	 * 
	 */
	public enum AssetStatus {

		Cancellation(-1, "作废"),

		DengDaiFengKong(0, "风控审核中"),

		ChanPinHouXuan(1, "进入产品候选"),

		RongZiZhong(2, "融资中"),

		RongZiWan(3, "融资完成"),

		XuHuanKuan(4, "到达还款日"),

		BuFenHuanKuan(6, "部分还款"),

		YiHuanKuan(5, "已还款");

		public final Integer value;
		public final String alias;

		// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
		AssetStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * 资产风控状态(对应Asset的risk_status)
	 * 
	 */
	public enum AssetRiskStatus {

		DengDaiJiaoDui(10, "等待校对"),

		JiaoDuiShiBai(-10, "校对不通过"),

		JiaoDuiChengGong(11, "校对通过"),

		ShenHeShiBai(-20, "审核不通过"),

		ShenHeChengGong(21, "审核通过");

		public final Integer value;
		public final String alias;

		AssetRiskStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * 资产风控状态(对应Asset的risk_status)
	 * 
	 */
	public enum AssetRiskType {

		JiaoDui(1, "校对资产"),

		Shenhe(2, "审核资产"),

		FaBu(3, "配置产品");

		public final Integer value;
		public final String alias;

		AssetRiskType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 资产风控状态(对应Asset的risk_status)
	 * 
	 */
	public enum DbState {

		EQUALS(0, "eq"),

		GREATEEQUALS(1, "ge"),

		LESSEQUALS(2, "le");

		public final Integer value;
		public final String alias;

		DbState(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 资产风控状态(对应Asset的risk_status)
	 * 
	 */
	public enum ImageStore {

		QINIU(0, "qiniu");

		public final Integer value;
		public final String alias;

		ImageStore(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 图片类型
	 */
	public enum ImageRelation {

		Asset(1, "asset"),

		Banner(2, "doc"),

		Financier(3, "financier"),

		Feedback(4, "feedback");

		public final Integer value;
		public final String alias;

		ImageRelation(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 接口返回码
	 */
	public enum MsgCode {

		BAD_REQUEST(-400, "参数错误"),

		CHECK_FAIL(-106, "入参校验失败"),

		SUBMIT_FAIL(-105, "不要重复提交"),

		PARAM_FAIL(-104, "参数错误"),

		PARSE_FAIL(-103, "文件解析异常"),

		TOAST_FAIL(-102, "失败"),

		FAIL(-101, "失败"),

		SEAL_FAIL(-100, "签章过期"),

		Hystrix_FAIL(-12, "Hystrix_fallback"),

		IPC_REPEAT(-11, "IPC重复调用"),

		DEPOSIT_WEB_WAIT(-11, "等待支付中"),

		CHANCE_FINISH(-10, "产品已经售罄"),

		CHANCE_YES(-9, "还有人未支付，请下拉刷新抢机会"),

		SMS_REG_REPEAT(-8, "手机号已经注册！"),

		PANEL_FAIL(-7, "界面展示失败"),

		LIMIT_TIXIAN_TRADE(-6, "您的账号异常已被限制提现 如有疑问请致电椰子客服：" + KEFU_MOBILE),

		MAX_PASS_ERROR(-5, "输入密码错误次数大于等于6次，用户被锁定，请联系客服:" + KEFU_MOBILE),

		PASS_ERROR(-4, "密码输入错误"),

		DEPOSIT_ERROR(-3, "充值异常"),

		LIMIT_MONEY_TRADE(-2, "您的账号异常已被限制交易 如有疑问请致电椰子客服：" + KEFU_MOBILE),

		REPEAT_SUBMIt(-1, "频繁提交"),

		SUCC(0, "成功"),

		WARN(2, "警告"),

		ERROR(-444, "异常报错"),

		WITHDRAW_WAIT(410, "提现处理中");

		public final Integer value;
		public final String alias;

		MsgCode(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 融资人状态
	 */
	public enum FinancierStatus {

		Common(0, "正常"),

		Cancellation(-1, "作废"),

		Exception(-2, "异常，锁定");

		public final Integer value;
		public final String alias;

		FinancierStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 融资人类型
	 */
	public enum FinancierType {

		Personal(1, "个人"),

		Company(2, "公司");

		public final Integer value;
		public final String alias;

		FinancierType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 利率显示方式
	 */
	public enum RateDileolayType {

		Common(1, "普通");

		public final Integer value;
		public final String alias;

		RateDileolayType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 产品利息类型(对应product的rate_type)
	 * 
	 */
	public enum RateTypeIntValue {

		FIXED_GENERAL(1, "固定利率"),

		FIXED_FLOAT(2, "固定利率＋正浮动"),

		FIXED_PM_FLOAT(3, "固定利率＋正负浮动"),

		FIXED_ACTUAL_FLOAT(4, "实际利率");

		public final Integer value;
		public final String alias;

		RateTypeIntValue(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * @modify dongyang.wu 添加普惠产品类型定期、活期、开放型 产品类型(对应product的type)
	 * 
	 */
	public enum ProductType {
		HuoQi(1, "活期"),

		DingQi(2, "定期"),

		XinShou(3, "新手标"),

		BaoLi(10, "国宝"),

		Choiceness(11, "优享");

		public final Integer value;
		public final String alias;

		ProductType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 产品类型(对应product的type)
	 * 
	 */
	public enum ProductPuhuiType {

		CURRENT(3, "current"),

		FIXED(2, "fixed"),

		Open_End_Funds(1, "openEndFunds");

		public final Integer value;
		public final String alias;

		ProductPuhuiType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 项目类型(对应project的type)
	 * 
	 */
	public enum ProjectType {
		/**
		 * 新增资产项目
		 */
		New(1, "新增资产项目"),

		/**
		 * 续卖(前一日未卖完项目,清算后继续卖)
		 */
		XuMai(2, "续卖"),

		/**
		 * 活期赎回(用户赎回对应的资产项目)
		 */
		ShuHui(3, "活期赎回");

		public final Integer value;
		public final String alias;

		ProjectType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 产品类型(对应product的status)
	 * 
	 */
	public enum ProductAvailable {

		Avail(1, "可用的"),

		invail(0, "不可用");

		public final Integer value;
		public final String alias;

		ProductAvailable(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * @author liaozhida 还款方式
	 */
	public enum RepaymentType {

		DaoQiFu(0, "到期一次性还本付息"),

		YueXi(10, "按月付息,到期还本"),

		YueBenXi(11, "按月还本息"),

		JiXi(40, "季度还息，到期还本"),

		JiBenXi(41, "按季度还本息"),

		HuoQi(20, "活期"),

		FuXi(30, "只付息"),

		FenQi(50, "分期还本付息");

		public final Integer value;
		public final String alias;

		RepaymentType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author liaozhida 起息方式
	 */
	public enum InterestType {

		TouziQixi(0, "投资即起息"),

		MujimanT1(3, "募集满T+1起息(默认)"),

		;

		public final Integer value;
		public final String alias;

		InterestType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 订单状态(对应order的status)
	 * 
	 */
	public enum OrderStatus {

		DengDaiZhiFu(1, "等待支付"),

		ZhiFuChengGong(2, "支付成功"),

		GuoQi(-1, "已过期"),

		QuXiao(-4, "取消交易"),

		ZhiFuShiBai(-2, "支付失败"),

		ZhiFuZhong(3, "支付处理中"),

		TuiKuan(-3, "交易退款");

		public final Integer value;
		public final String alias;

		OrderStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 接口返回码
	 */
	public enum OrderError {

		Product_Error(-1, "该产品不在销售状态中，无法购买"),

		Error_Status_Qingsuan(-2, "产品正在清算，不支持购买"),

		REPEAT(-3, "您还有未支付的订单，请前往支付"),

		Order_Paying(-4, "您有一笔正在支付的订单，请稍后再试"),

		Error_Limit(-5, "产品限制"),

		Balance_Limit(-6, "余额不足"),

		Status_Error(-7, "订单状态异常"),

		Time_Out(-8, "订单已经过期");

		public final Integer value;
		public final String alias;

		OrderError(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 接口返回码
	 */
	public enum SecurityError {

		User_Error(-2, "用户状态异常,请联系客服"), Pass_Error(-1, "密码错误");

		public final Integer value;
		public final String alias;

		SecurityError(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 订单动作
	 */
	public enum OrderAction {

		Order_cancel(-1, "取消"), Order_Create(1, "创建"), Order_Pay(0, "支付");
		public final Integer value;
		public final String alias;

		OrderAction(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * @author liaozhida 支付方式
	 */
	public enum PayType {

		TICKET_PAY(0, "优惠券支付"),

		GNETE_PAY(1, "银联支付"),

		BALANCE(3, "余额支付"),

		REALPAL(4, "融宝支付");

		public final Integer value;
		public final String alias;

		PayType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 交易类型(对应trade的type)
	 */
	public enum TradeType {

		ChongZhi(10, "充值"),

		HuanKuan(20, "还款"),

		HuanKuan_BenJin(21, "还款-本金"),

		HuanKuan_LiXi(22, "还款-利息"),

		HuanKuan_LiXi_BenJin(23, "还款-利息-本金"),

		TYJ_TIXIAN(51, "体验金转余额"),

		TYJ_TOUZI(-54, "体验金投资"),

		TiXian(-10, "提现"),

		HuanKuan_LiShui(24, "里水基金还款"),

		/**
		 * 手动购买
		 */
		GouMai_SD(-20, "手动购买"),

		/**
		 * 自动购买
		 */
		GouMai_ZD(-21, "自动购买"),

		Penal(12, "违约金补偿"),

		ChongZhi_SXF(-51, "充值手续费"),

		TiXian_SXF(-52, "提现手续费"),

		REFUND_SXF(-55, "退还提现扣取的手续费"),

		Transfer_to_Yezi(-60, "用户转账给椰子"),

		Transfer_to_User(60, "椰子转账给用户"), Realpal_SignCard(201, "realpal签约"),

		Realpal_BindCard(202, "realpal绑卡"),

		/* 以下是financierTrade 的数据表 */

		/**
		 * 融资方 提现
		 */
		RongZi_TIXIAN(92, "融资方 提现"),

		/**
		 * 融资方借款 椰子给融资方打款
		 */
		RongZi_jiekuan(91, "融资方借款"),

		/**
		 * 融资方充值 用途是还款
		 */
		RongZi_chongzhi(94, "融资方充值"),

		/**
		 * 融资方还款 椰子给融资方打款
		 */
		RongZi_huankuan(-93, "融资方还款"),

		Agent_chongzhi(95, "运营账户充值"),

		Agent_huankuan(-95, "运营账户转账到还款账户"),

		Agent_TyjProfit(-96, "运营账户兑付体验金利息"),

		YEAZI_SXF(-301, "椰子代扣手续费"),

		YEAZI_SXF_REFUND(302, "椰子代扣手续费退还"),

		Agent_shoukuan_touzi(303, "用户投资，转账至收款账户"),

		Creditor_HUANKUAN_LIXI_BENJIN(70, "还款-债权转让"),

		Creditor_SXF(-70, "债转手续费"),

		XJT_JYS_TIXIAN(-410, "交易所提现"),

		XJT_JYS_CHONGZHI(410, "交易所充值");

		public final Integer value;
		public final String alias;

		TradeType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 投资状态(对应invest的status)
	 * 
	 */
	public enum InvestStatus {
		ZaiTu(0, "投资中"),

		BuFengHuanKuan(10, "部分已还款"),

		/**
		 * 全部已还款(定期、固定期限产品才会到期还款)
		 */
		QuanBuHuanKuan(11, "全部已还款"),

		/**
		 * 到期未打款(只适用新手标，新手标到期后，状态为31，收益金额打到冻结资金中，投资1000后，状态改为 11， 金额进入余额中)
		 */
		DaoQiWeiHuanKuan(31, "到期打款"),

		/**
		 * 部分赎回(活期产品才有)
		 */
		BuFengShuHui(20, "部分赎回"),

		/**
		 * 全部赎回(活期产品才有)
		 */
		QuanBuShuHui(21, "全部赎回"),

		TYJDongJie(-11, "冻结"),

		TiQianHuanKuan(30, "提前还款");

		public final Integer value;
		public final String alias;

		InvestStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 投资周期
	 * 
	 */
	public enum Cycle {

		HUOQI(0, "活期"),

		GUOBAO(-1, "保理"),

		Choiceness(-8, "优享"),

		DINGQI(30, " 定期"),

		XINSHOU(5, "新手标"),

		ZHAIZHUAN(20, "债转");

		public final Integer value;
		public final String alias;

		Cycle(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * VIP等级
	 * 
	 */
	public enum VipLevel {

		Level_O(0, "普通"),

		Level_I(1, "1"),

		Level_II(2, "2"), ;

		public final Integer value;
		public final String alias;

		VipLevel(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 终端类型(对应各表中的terminal)
	 */
	public enum TerminalType {

		QiTa("0", "其他"),

		Andriod("6", "App(Andriod)"),

		Ios("8", "App(IOS)"),

		Mobile("2", "手机Web(含微信)"),

		Pc("3", "PC版Web");

		public final String value;
		public final String alias;

		TerminalType(String value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 交易状态(对应trade的status)
	 */
	public enum TradeStatus {

		Default(0, "默认"), ChengGong(1, "成功"), ShiBai(-1, "失败"),

		TiXian_SH(2, "提现申请中"),

		Realpal_SignCard(200, "realpal绑卡中，签约成功但是绑卡没有成功"),

		Realpal_BindCard(202, "二次绑卡，但是还没有支付成功"),

		TiXian_JuJue(-2, "提现被拒绝"),

		Refund_SXF(-5, "手续费被退还"),

		DengDai(4, "等待返回"),

		DengDaiRealpal(5, "等待realpal的批量操作");

		public final Integer value;
		public final String alias;

		TradeStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	public enum BusinessValue {

		FREE_TICKET_DAY(5, "体验券默认的计息日期"),

		EXPIRE_TICKET_DAY(7, "体验券的默认过期时间"),

		ZHONGJIAN_FRIEND_EXPIRE_TICKET_DAY(15, "中建邀请好友过期时间"),

		INPUT_WRONG_NUMBER(6, "用户最多能输入的错误次数"),

		ORDER_OUT_TIME(15, "订单失效 分钟");

		public final Integer value;
		public final String alias;

		BusinessValue(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 券状态(对应ticket的status)
	 */
	public enum TicketStatus {

		YouXiao(-1, "可使用"),

		Hibernate(0, "待激活"),

		YiShiYong(1, "已使用"),

		GuoQi(2, "过期"),

		DongJie(4, "冻结"),

		ZuoFei(3, "作废");

		public final Integer value;
		public final String alias;

		TicketStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 理财券类型(对应ticket的type)
	 * 
	 */
	public enum TicketType {

		LiCaiQuan(1, "理财券"),

		XianJinQuan(2, "现金券"),

		JiaXiQuan(3, "加息券"),

		TiYanQuan(4, "体验券");

		public final Integer value;
		public final String alias;

		TicketType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 体验金面额
	 * 
	 * @author liaozhida
	 * 
	 */
	public enum TicketAmount {

		Common("6666", "新手普通面额");

		public final String value;
		public final String alias;

		TicketAmount(String value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * @modify dongyang.wu 添加变形记体验金belong值 理财券类型(对应ticket的type)
	 * 
	 */
	public enum TicketBelong {

		REGISTER(0, "注册"),

		CONSOLE_GIFT(1, "后台赠送"),

		FRIEND(2, "邀请好友"),

		GENESIS(10, "创世纪"),

		// 11-20 都是创世纪
		GENESIS_ONE(11, "创世纪第一关"),

		GENESIS_TWO(12, "创世纪第二关"),

		GENESIS_THREE(13, "创世纪第三关"),

		GENESIS_FOUR(14, "创世纪第四关"),

		GENESIS_FIVE(15, "创世纪第五关"),

		GENESIS_SIX(16, "创世纪第六关"),

		GENESIS_SEVEN(17, "创世纪第七关"),

		GENESIS_EIGHT(18, "创世纪额外大奖"),

		PRISE_ZHONGJIANYIJU(20, "企业专享"),

		DENGE_SONG(30, "等额送体验金"),

		PRISE_HIBERNATE(40, "邀请一位企业用户"),

		HUNDRED_MILLION(50, "破亿福利"),

		LUCK_DRAW(51, "抽奖活动"),

		GUANGZHOUTA(52, "郎朗慈善独奏会 "),

		QX2(54, "七夕专享"),

		YIBABA_BEI(60, "收益188倍体验金奖励"),

		Newbie_invest(101, "首次投资满1000"),

		Newbie_friend(102, "邀请好友"),

		Qing_Wi(131, "庆五亿抽奖活动"),

		TYJ_BELONG_SECOND(120, "新手活动第二关"), TYJ_BELONG_THREE(121, "新手活动第三关"),

		LUCY_CARD_ACTIVITY(77, "抽福气卡活动"),

		VOICE_LOVE_ACTIVITY(81, "情人节专场活动"),

		spring_GIFT_EXIST(82, "春游基金帮你存活动"), spring_GIFT_SEND(83, "逢十遇六见大礼"), spring_GIFT_LEAD(84, "一马当先"), spring_GIFT_END(
				85, "一锤定音"), CHINA_FOOTBALL(86, "国足专场奖励"), APRIL_ACTIVITY(87, "任性四月好礼享不停"), MAY_ACTIVITY(88,
				"五月摇椰林瓜分一亿体验金活动"),

		JUNE_ACTIVITY_WAWA(89, "童趣六月娃娃机体验金"), JUNE_ACTIVITY_TURN_ONE(90, "童趣六月翻转盘体验金*1"), JUNE_ACTIVITY_TURN_ONE_FIVE(
				91, "童趣六月翻转盘体验金*1.5"), JUNE_ACTIVITY_TURN_TWO(92, "童趣六月翻转盘体验金*2"), JUNE_ACTIVITY_TURN_TWO_FIVE(93,
				"童趣六月翻转盘体验金*2.5"), JUNE_ACTIVITY_TURN_THREE(94, "童趣六月翻转盘体验金*3"),

		JULY_ACTIVITY_LEVEL_FIRST(95, "7月推荐有大礼礼包一注册奖"), JULY_ACTIVITY_LEVEL_SECOND(96, "7月推荐有大礼礼包二首投奖"), JULY_ACTIVITY_LEVEL_THIRD(
				97, "7月推荐有大礼礼包三累投奖1"), JULY_ACTIVITY_LEVEL_FOURTH(98, "7月推荐有大礼礼包四累投奖2"),

		BIANXINGJI_ACTIVITY_TURN(99, "梦想大转盘体验金"),

		AIYINDAO_ACTIVITY(100, "爱婴岛体验金"),

		DECEMBER_ACTIVITY(201, "嗨皮双“蛋”节"),

		LUCKY_YEAR_TICKET(202, "活动赠送"),

		QX1(53, "投资一笔激活"), Qudao_Liang(56, "单笔投资满2千激活"), Qudao_Wu(57, "单笔投资满5千激活"), Qudao_YiWan(58, "单笔投资满1万激活"), Qudao_Yi(
				59, "单笔投资满1千激活"), QUDAO_NINE_LIANG(61, "单笔投资满1000可激活"), QUDAO_NINE_LIU(62, "单笔投资满5000可激活"), QUDAO_NINE_SHIER(
				63, "单笔投资满10000可激活"), QUDAO_SHIYI_SHIBA_SAN(64, "单笔投资满1000可激活"), QUDAO_SHIYI_SHIBA_QI(65,
				"单笔投资满5000可激活"), QUDAO_SHIYI_SHIBA_SHIWU(66, "单笔投资满10000可激活"), QUDAO_TOUZI_WU_WAN(67, "单笔投资满50000可激活"), SUN_TOUZI_YI_QIAN(
				69, "单笔投资满1000可激活"), SUN_TOUZI_WU_QIAN(70, "单笔投资满5000可激活"), SUN_TOUZI_YI_WAN(71, "单笔投资满10000可激活"), QUDAO_TOUZI_SHI_WAN(
				68, "单笔投资满100000可激活"), JI_YEAR_WU_WAN(72, "单笔投资满50000可激活"), JI_YEAR_LIANG_QIAN(73, "单笔投资满2000可激活"), JI_YEAR_LIANGESHIWU_WAN(
				74, "单笔投资满25000可激活"), JI_YEAR_WU_QIAN(75, "单笔投资满5000可激活"), JI_YEAR_YI_WAN(76, "单笔投资满10000可激活"), JI_YEAR_LIU_QIAN(
				79, "单笔投资满6000可激活"), JI_YEAR_YI_WAN_ER(78, "单笔投资满12000可激活"), JI_YEAR_TYJ_LIANG_QIAN(80, "单笔投资满2000可激活"),

		LUCKY_YEAR_ACTIVATE_ONE(203, "单笔投资满5千可激活"), LUCKY_YEAR_ACTIVATE_TWO(204, "单笔投资满1万可激活"),

		XINSHOU_TIEXI(205, "新手标贴息");

		public final Integer value;
		public final String alias;

		TicketBelong(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * Trade 是否链接第三方
	 * 
	 */
	public enum TradeIsOut {

		YES("1", "yes"),

		NO("0", "no");

		public final String value;
		public final String alias;

		TradeIsOut(String value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * Trade 是否可见
	 * 
	 */
	public enum TradeVisible {

		LogicVisible_Show(1, "yes"),

		LogicVisible_Hidden(0, "no"),

		Visible_Show(1, "yes"),

		Visible_Hidden(0, "no");

		public final Integer value;
		public final String alias;

		TradeVisible(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author liaozhida
	 * 
	 *         投资列表类型
	 */
	public enum InvestListType {

		SOON_TYPE(1, "即将回款"),

		Already_TYPE(0, "已回款");

		public final Integer value;
		public final String alias;

		InvestListType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author liaozhida
	 * 
	 *         投资列表类型
	 */
	public enum NewsType {

		Person(0, "个人消息"),

		Platform(1, "平台消息");

		public final Integer value;
		public final String alias;

		NewsType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	public enum WithdrawCheckType {

		Check_Succ(1, "提现成功"),

		Check_Fail(0, "提现失败");

		public final Integer value;
		public final String alias;

		WithdrawCheckType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author sam
	 * 
	 *         用户回访类型
	 */
	public enum UserCallType {

		JiHuo(1, "激活回访"),

		WEIHU(9, "维护回访"),

		DingZhi(2, "定制回访"),

		JingZhiHuiKuan(3, "静置余额回访"),

		HuoDong(4, "活动回访"),

		Other(8, "待解决问题回访"),

		USERED_LOST(10, "已流失客户回访"),

		MaybeLost(5, "可能流失客户回访");

		// KeHuWeiHu(7, "客户维护回访"),

		public final Integer value;
		public final String alias;

		UserCallType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * @author sam
	 * 
	 *         用户回访状态(接听状态)
	 */
	public enum UserCallStatus {

		WuFaJieTong(1, "无法接通"),

		WuFaJieTing(2, "无人接听"),

		TingJi(3, "停机"),

		SHUTDOWN(9, "关机"),

		JieTong(5, "接通"),

		BuJieShou(6, "拒接"),

		JieTongJiGuaDuan(4, "接通即挂机"),

		InvalidNumber(7, "无效号码");

		// Other(8, "其他");

		public final Integer value;
		public final String alias;

		UserCallStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * @author liaozhida
	 * 
	 *         还款记录
	 */
	public enum RepaymentStatus {

		Default(0, "初始"),

		YiQingSuan(2, "已清算"), // 资产清算

		YiHuanKuan(1, "已还款"),

		FenQiHuanKuan(3, "分期已还款"),

		YiTongZhi(11, "已还款并通知客户");

		public final Integer value;
		public final String alias;

		RepaymentStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author sam
	 * 
	 *         银行卡
	 */
	public enum UserCardType {

		Private(0, "对私"),

		Public(1, "对公");

		public final Integer value;
		public final String alias;

		UserCardType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author sam
	 * 
	 *         银行卡状态
	 */
	public enum UserCardStatus {

		Normal(0, "正常"),

		HIBERNATE(2, "冻结 因为暂时不能绑定多张卡"),

		TEMP(3, "临时保存 因为绑定的过程中可能会失败"),

		Unbundling(1, "已解绑");

		public final Integer value;
		public final String alias;

		UserCardStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author sam
	 * 
	 *         银行卡渠道
	 */
	public enum UserCardChannel {

		RongBao(0, "融宝");

		public final Integer value;
		public final String alias;

		UserCardChannel(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author sam
	 * 
	 *         银行卡类型
	 */
	public enum BankCardType {

		BasicCard(0, "基本卡"),

		SecurityCard(1, "安全卡");

		public final Integer value;
		public final String alias;

		BankCardType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 银行卡是否可见
	 * 
	 * @author leopard
	 *
	 */
	public enum BankCardVisible {

		VISIBLE(0, "可见"),

		INVISIBLE(1, "不可见");

		public final Integer value;
		public final String alias;

		BankCardVisible(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/*
	 * @author terry.tan
	 * 
	 * 用户反馈状态
	 */
	public enum UserFeedbackStatus {

		PendingTreatment(1, "待处理"), NoAdopted(2, "未采纳"), Yesadopted(3, "已采纳");

		public final Integer value;
		public final String alias;

		UserFeedbackStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 版本的强制类型
	 * 
	 * @author zarek.wu
	 *
	 */
	public enum VersionForceType {

		QianZhi(1, "强制"), FeiQiangZhi(0, "非强制");

		public final Integer value;
		public final String alias;

		VersionForceType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 短信发送类型
	 * 
	 * @author leopard
	 *
	 */
	public enum SendSmsType {

		MobileNotNull(101, "手机号不能为空"), ContentNotNull(102, "发送内容不能为空"), SendSuccess(103, "发送成功"), SendFail(104, "发送失败"), SendBalanceLack(
				105, "短信余额不足");

		public final Integer value;
		public final String alias;

		SendSmsType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 分期资产状态
	 * 
	 * @author leopard
	 *
	 */
	public enum AssetStageStatus {

		DEFAULT(0, "默认"),

		HuanKuanDay(1, "到达还款日"),

		YiHuanKuan(2, "已还款");

		public final Integer value;
		public final String alias;

		AssetStageStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 分期产品状态
	 * 
	 * @author leopard
	 *
	 */
	public enum ProductStageStatus {

		DEFAULT(0, "默认"),

		HuanKuanDay(1, "到达还款日"),

		YiHuanKuan(2, "已还款"),

		TiQianHuanKuanShiXiao(3, "因前期提前还款失效");

		public final Integer value;
		public final String alias;

		ProductStageStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author dongyang.wu
	 *
	 *         推送类型
	 */
	public enum PushType {

		PRODUCT_PUBLISH(1, "产品发布"),

		TRADE_APPLY(2, "交易申请"),

		TRADE_ENSURE(6, "交易确认"),

		REDEEM_APPLY(3, "赎回申请文件"),

		REDEEM_RESULT(4, "赎回结果文件"),

		REPAY_RESULT(5, "打款结果文件"),

		DES_RESULT(7, "债转文件");

		public final Integer value;
		public final String alias;

		PushType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 分期产品状态
	 * 
	 * @author leopard
	 *
	 */
	public enum InvestStageStatus {

		DEFAULT(0, "默认"),

		HuanKuanDay(1, "到达还款日"),

		YiHuanKuan(2, "已还款"),

		TiQianHuanKuanShiXiao(3, "因前期提前还款失效");

		public final Integer value;
		public final String alias;

		InvestStageStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author dongyang.wu 操作类型
	 * 
	 */
	public enum OperationType {

		Editor(0, "编辑"), Audit(1, "审核"), Review(2, "复核"), Push(3, "推送明细"), Prepayment(4, "提前还款确认");

		public final Integer value;
		public final String alias;

		OperationType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 产品类型(对应product的childType)
	 * 
	 */
	public enum ProductChildType {

		XinShou(3, "新手标"),

		BaoLi(10, "国宝计划"),

		Choiceness(11, "优享计划"),

		JINGYING(1, "精英计划");

		public final Integer value;
		public final String alias;

		ProductChildType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 卷类型
	 * 
	 * @author william
	 *
	 */
	public enum CouponType {

		JIAXI(1, "加息卷"),

		REDPACK(2, "红包卷"),

		TIXIAN(3, "提现免手续费");

		public final Integer value;
		public final String alias;

		CouponType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 用户消息通知设置(对应userInfo的msgFlag)
	 * 
	 */
	public enum UserMsgFlag {

		AMOUNT_MSG(1, "资金变动"),

		INVEST_MSG(2, "交易动态"),

		PRODUCT_MSG(4, "新产品上架"),

		TICKET_DUE_MSG(8, "优惠券奖品过期提醒"),

		ACTIVITY_MSG(16, "活动提醒");

		public final Integer value;
		public final String alias;

		UserMsgFlag(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 获取条件（获取条件列表&投资和期限条件（或/并且））
	 * 
	 * @author william
	 * 
	 */
	public enum CouponFlag {

		NOTHING(1, "无"),

		REGISTER(2, "注册"),

		BING_CARD(4, "注册并绑卡"),

		INVEST(8, "投资"),

		INVITE_REGISTER(16, "邀请好友注册"),

		INVITE_BING_CARD(32, "邀请好友注册并绑卡"),

		INVITE_INVEST(64, "邀请好友投资"),

		FLAG_CONDITION(128, "并且&或"),

		FLAG_INVEST_CONDITION(256, "投资-并且&或");

		public final Integer value;
		public final String alias;

		CouponFlag(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 债转类型(对应Creditor的type)
	 * 
	 */
	public enum CreditorType {

		zhaizhuan(20, "债转");

		public final Integer value;
		public final String alias;

		CreditorType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 来源
	 * 
	 * @author william
	 * 
	 */
	// public enum CouponChannel {
	//
	// REGISTER(1, "注册"),
	//
	// BIND_CARD(2, "绑卡"),
	//
	// FIRST_INVEST(4, "第一笔投资"),
	//
	// INVITE_REGISTER(8, "邀请好友"),
	//
	// INVITE_BIND_CARD(16, "邀请好友并绑卡"),
	//
	// INVITE_FIRST_INVEST(32, "邀请好友并投资")
	//
	// ;
	//
	// public final Integer value;
	// public final String alias;
	//
	// CouponChannel(Integer value, String k) {
	// this.value = value;
	// this.alias = k;
	// }
	// };

	/**
	 * 使用条件（使用条件列表&投资和期限条件（或/并且））
	 * 
	 * @author william
	 * 
	 */
	public enum CouponUsedFlag {

		ALL(1, "所有产品"),

		GUOBAO(2, "国宝计划"),

		YOUXIANG(4, "优享计划"),

		JINGYING(8, "精英计划"),

		ALL_LABEL(16, "所有标签"),

		XINSHOU_LABEL(32, "新手标"),

		GONGYINGLIAN_LABEL(64, "供应链产品"),

		WEIDAIYING_LABEL(128, "微贷赢"),

		JINGYIKNG_LABEL(256, "精英专享"),

		ZHUAIZHUANG_LABEL(512, "债权转让"),

		FENQI_LABEL(1024, "分期产品"),

		MENGXIANG_LABEL(2048, "梦想专享"),

		AND_OR(4096, "并且&或");

		public final Integer value;
		public final String alias;

		CouponUsedFlag(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 债转类型(对应Creditor的status)
	 * 
	 */
	public enum CreditorStatus {

		Transfer_Failed(-1, "债转失败"), Transfer_Online(0, "债转中"), Transfer_Finish(1, "债转成功");

		public final Integer value;
		public final String alias;

		CreditorStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 提现使用条件（使用条件列表&投资和期限条件（或/并且））
	 * 
	 * @author william
	 * 
	 */
	public enum CouponWithdrawUsedFlag {

		NOTHING(1, "无"),

		FIRST_WITHDRAW(2, "当月第一笔提现"),

		NO_FIRST_WITHDRAW(4, "非当月第一笔提现");

		public final Integer value;
		public final String alias;

		CouponWithdrawUsedFlag(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 债转类型(对应Creditor的Reason)
	 * 
	 */
	public enum CreditorReason {

		DEFAULT(0, "默认"), SOLD(1, "已售"), UNDO(2, "撤销"), EXPIRED(3, "已过期"), PREPAYMENT(4, "提前还款");

		public final Integer value;
		public final String alias;

		CreditorReason(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	// public enum JiPushMessageType {
	//
	// TICKET(2, "体验金新增"),
	//
	// TICKET_AMOUNT(3, "体验金可提取"),
	//
	// PRODUCT(4, "产品列表新增"),
	//
	// REPAYMENT(5, "产品回款"),
	//
	// DOC(6, "公告／活动"),
	//
	// ;
	//
	// public final Integer value;
	// public final String alias;
	//
	// JiPushMessageType(Integer value, String k) {
	// this.value = value;
	// this.alias = k;
	// }
	// }

	/**
	 * 消息中心红点类型
	 * 
	 * @author william redType: 1:纯红点；2:数字；3:图标,0:不显示
	 */
	public enum NoticeReadType {

		NEWS("1", 2, "消息中心新增"),

		PRODUCT("10", 1, "一级菜单-投资"),

		DISCOVER("11", 1, "一级菜单-发现"),

		OWN("12", 1, "一级菜单-我的"),

		TICKET("13", 1, "二级菜单-玩转体验金"),

		LUNBO_APP_MIN("14", 1, "二级菜单-热门活动"),

		LUNBO_APP_MESSAGE("15", 1, "二级菜单-椰子公告"),

		INVEST("16", 1, "二级菜单-我的投资"),

		OWN_TICKET("17", 3, "二级菜单-体验金"),

		COUPON("24", 3, "二级菜单-我的奖励"),

		TICKET_LIST("18", 0, "三级菜单-玩转体验金-福利"),

		WITHDRAW_TICKET("23", 0, "三级菜单-玩转体验金-可提现体验金"),

		REPAYMENT("19", 0, "三级菜单-我的投资-已回款"),

		NEW_INVEST("20", 0, "三级菜单-我的投资-即将回款"),

		TASK("22", 0, "三级菜单-玩转体验金-任务"), ;

		public final String value;
		public final Integer redType;
		public final String alias;

		NoticeReadType(String value, Integer redType, String k) {
			this.value = value;
			this.redType = redType;
			this.alias = k;
		}
	}

	/**
	 * 极光推送的内部通知type类型
	 * 
	 * @author william
	 */
	public enum JiGuangNoticeType {

		All(0, "所有"),

		// NEWS(1, "消息中心新增"),

		PRODUCT(10, "一级菜单-投资"),

		DISCOVER(11, "一级菜单-发现"),

		OWN(12, "一级菜单-我的"),

		DISCOVER_OWN(0, "一级菜单-发现&一级菜单-我的"), ;

		public final Integer value;
		public final String alias;

		JiGuangNoticeType(Integer value, String alias) {
			this.value = value;
			this.alias = alias;
		}
	}

	/**
	 * 卷状态
	 * 
	 * @author william
	 *
	 */
	public enum CouponStatus {

		PENDING(1, "待使用"),

		USED(2, "已使用"),

		OVERDUE(3, "已过期"),

		FREEZE(4, "冻结"),

		RECOVER(5, "收回");

		public final Integer value;
		public final String alias;

		CouponStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author zarek.wu 自动投资投资期限范围
	 * 
	 */
	public enum AutoInvestSaleScope {

		None(0, "不限"), IeMar(1, "≤3个月"), IeJun(2, "≤6个月"), IeDec(3, "≤12个月");

		public final Integer value;
		public final String alias;

		AutoInvestSaleScope(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author zarek.wu 自动投资投资期限对应利率范围
	 * 
	 */
	public enum AutoInvestSaleScopeToLiLu {

		None(0, "7~12.0"), IeMar(1, "7~8.0"), IeJun(2, "7~9.50"), IeDec(3, "7~11.0");

		public final Integer value;
		public final String alias;

		AutoInvestSaleScopeToLiLu(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * @author zarek.wu 产品是否自动投资
	 * 
	 */
	public enum HadAuto {

		Yes(1, "是"), No(0, "否");

		public final Integer value;
		public final String alias;

		HadAuto(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author dongyang.wu 产品还款审核状态
	 * 
	 */
	public enum ProductAuditStatus {

		WaitForAudit(1, "待审核"), AuditFail(2, "审核不通过"), AuditSuccess(3, "审核通过"), AuditStage(4, "分期部分审核");

		public final Integer value;
		public final String alias;

		ProductAuditStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 自动投资优先类型
	 * 
	 * @author zarek.wu
	 *
	 */
	public enum PrecedentType {

		PrecedentRate(1, "年化率高优先"), PrecedentDay(2, "期限短优先");

		public final Integer value;
		public final String alias;

		PrecedentType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	}

	/**
	 * 使用条件--标签
	 * 
	 * @author dongyang
	 * 
	 */
	public enum CouponUsedFlagLabel {

		ALL_LABEL(16, "所有标签"),

		XINSHOU_LABEL(32, "新手标"),

		GONGYINGLIAN_LABEL(64, "供应链产品"),

		WEIDAIYING_LABEL(128, "微贷赢"),

		JINGYIKNG_LABEL(256, "精英专享"),

		ZHUAIZHUANG_LABEL(512, "债权转让"),

		FENQI_LABEL(1024, "分期产品"),

		MENGXIANG_LABEL(2048, "梦想专标");

		public final Integer value;
		public final String alias;

		CouponUsedFlagLabel(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 使用条件--产品类型
	 * 
	 * @author dongyang
	 * 
	 */
	public enum CouponUsedFlagProductType {

		ALL(1, "所有产品"),

		GUOBAO(2, "国宝计划"),

		YOUXIANG(4, "优享计划"),

		JINGYING(8, "精英计划");

		public final Integer value;
		public final String alias;

		CouponUsedFlagProductType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 使用条件--并且&或
	 * 
	 * @author dongyang
	 * 
	 */
	public enum CouponUsedFlagAndOr {

		AND_OR(4096, "并且&或");

		public final Integer value;
		public final String alias;

		CouponUsedFlagAndOr(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author dongyang.wu 分期产品还款审核状态
	 * 
	 */
	public enum ProductStageAuditStatus {

		WaitForAudit(1, "待审核"), AuditFail(2, "审核不通过"), AuditSuccess(3, "审核通过"), AuditStage(4, "分期部分审核");

		public final Integer value;
		public final String alias;

		ProductStageAuditStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 是否债转中
	 * 
	 */
	public enum HadCreditor {

		Creditor_Default(0, "未债转"), Creditor_Online(1, "债转中"), Creditor_End(2, "已债转");

		public final Integer value;
		public final String alias;

		HadCreditor(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 债转交易记录类型
	 * 
	 * @author leopard
	 *
	 */
	public enum TradeCreditorType {

		Transfer_Balance(1, "债转人差额"),

		Transferee_Balance(2, "受让人差额");

		public final Integer value;
		public final String alias;

		TradeCreditorType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 债转交易记录状态
	 * 
	 * @author leopard
	 *
	 */
	public enum TradeCreditorStatus {

		Failure(-1, "失败"),

		Default(0, "默认"),

		Success(1, "成功");

		public final Integer value;
		public final String alias;

		TradeCreditorStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 消息中心自动触发对应的News表Id
	 * 
	 * 
	 * @author william
	 *
	 */
	public enum UserNewsMessageId {

		REPAYMENT("4fa7261e-f6d7-46e8-96b3-42cfb57d4573", "回款"),

		PRE_REPAYMENT("4eba22c6-368d-4fd0-8609-9f8390df37be", "提前回款"),

		NEW_TICKET("3dbdab1c-dbcd-4ab4-b0aa-c6b625b383cb", "新体验金到账"),

		EXPIRE_TICKET("1a8bf272-e98b-49e2-9dd3-466f98aa56be", "体验金即将过期"),

		NEW_COUPON("37c99ded-9787-466c-b787-78cde6b19cab", "新到账优惠券"),

		EXPIRE_COUPON("fe0eb6ea-c2c7-4051-9fea-1b569dc6d68e", "即将过去优惠券"),

		TRANSFER_FAILED("fe0eb6ea-c2c7-4051-9fea-1b569dc6d683", "债转失败"),

		;

		public final String messageId;
		public final String alias;

		UserNewsMessageId(String messageId, String k) {
			this.messageId = messageId;
			this.alias = k;
		}
	};

	/**
	 * 数据中心--标签
	 * 
	 * @author dongyang
	 * @date 2017-12-08
	 */
	public enum DataCenterLabel {

		TICKET_LABEL("体验金标的", "体验金标的"),

		XINSHOU_LABEL("新手标", "新手标"),

		GONGYINGLIAN_LABEL("供应链产品", "供应链产品"),

		WEIDAIYING_LABEL("微贷盈", "微贷盈"),

		GLD_LABEL("企业专享", "企业专享"),

		JINGYING_LABEL("精英专享", "精英专享"),

		ZHUAIZHUANG_LABEL("债权转让", "债权转让"),

		FENQI_LABEL("分期产品", "分期产品"),

		MENGXIANG_LABEL("梦想专标", "梦想专标");

		public final String value;
		public final String alias;

		DataCenterLabel(String value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 借款审核状态(borrowing的status)
	 * 
	 */
	public enum BorrowingStatus {

		PENDING(1, "待处理"),

		SUCCESS(2, "审核通过"),

		REJECT(3, "审核拒绝");

		public final Integer value;
		public final String alias;

		// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
		BorrowingStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 授信门店类型(credit的status)
	 * 
	 */
	public enum CreditStatus {

		PENDING(1, "待处理"),

		SUCCESS(2, "审核通过"),

		REJECT(3, "审核拒绝");

		public final Integer value;
		public final String alias;

		// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
		CreditStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 签章状态
	 * 
	 * @author zarek.wu
	 *
	 */
	public enum SignatureStatus {

		DEFAULT(0, "默认"), CANCLE(1, "失效关闭"), PENDING(2, "进行中"), SUCC(3, "成功"), FAIL(4, "失败");

		public final Integer value;
		public final String alias;

		SignatureStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * (signature的sealType)
	 * 
	 */
	public enum SignatureSealType {

		SERVICE(1, "服务协议"),

		QUARTET(2, "四方协议"),

		BORROWING(3, "借款协议"),

		ACCESSORY(4, "附件");

		public final Integer value;
		public final String alias;

		SignatureSealType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * (signature的seal)
	 * 
	 */
	public enum SignatureSeal {

		YEAZI(1, "椰子-供应链"),

		FINANCIER(2, "融资人-加盟商"),

		AIYINGDAO(4, "爱婴岛-供应商"),

		DANBAOFANG(8, "民信-担保方"),

		;

		public final Integer value;
		public final String alias;

		SignatureSeal(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 用户融资人借款类型(userInfo的borrower_type)
	 * 
	 */
	public enum UserInfoBorrowerType {

		DEFAULT_COMMON(0, "普通用户"),

		PERSONAL(1, "个人"),

		ENTERPRISE(2, "企业"),

		AIYINGDAO_PERSONAL(3, "爱婴岛个人"),

		AIYINGDAO_ENTERPRISE(4, "爱婴岛企业");

		public final Integer value;
		public final String alias;

		UserInfoBorrowerType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * @author dongyang.wu 借款签章
	 * 
	 */
	public enum BorrowingSeal {

		DEFAULT_NOSEAL(0, "默认，未签章"), ACCESSORY_YEASEAL(1, "附件协议-椰子已签章"), ACCESSORY_BORROWSEAL(2, "附件协议-借款人已签章"), BORROWSEAL1(
				4, "借款协议-借款人已签章");

		public final Integer value;
		public final String alias;

		BorrowingSeal(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 授信门店地区(对应Credit的area)
	 * 
	 */
	public enum CreditArea {

		HUADONG(1, "华东"),

		HUANAN(2, "华南"),

		;

		public final Integer value;
		public final String alias;

		CreditArea(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * (signature的type)
	 * 
	 */
	public enum SignatureType {

		CREDIT(1, "授信"),

		BORROWING(2, "借款");

		public final Integer value;
		public final String alias;

		SignatureType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * @author dongyang.wu (invest_raise的type)
	 * 
	 */
	public enum InvestRaiseType {

		DEFAULT(0, "默认"),

		REDPACKAGE(1, "红包");

		public final Integer value;
		public final String alias;

		InvestRaiseType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	public enum AliMsgStatus {

		DEFAULT(0, "默认"),

		PENDING(1, "运行中"),

		FINSH(2, "完成");

		public final Integer value;
		public final String alias;

		AliMsgStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	};

	/**
	 * 第三方类型
	 * 
	 * @author zarek.wu
	 *
	 */
	public enum ThirdPartyPayType {
		PMEMBER_OPEN_ACCOUNT(0, "个人会员开户"),

		QUERYPERSONACCOUNT(1, "个人会员查询"),

		BINDCARDOPENACC(2, "个人会员绑卡开户"),

		MODIFYSTATUS(3, "会员状态修改"),

		QRYBALANCE(4, "余额查询"),

		CHECKISSETPWD(5, "是否已设支付密码接口"),

		BINDCARD_BIND(6, "个人会员对私绑卡"),

		QUERYBINDCARD(7, "绑卡列表查询"),

		SENDPHONEVCODECOMMON(8, "发送短信验证码"),

		BANKCARD_LIST(9, "卡BIN查询"),

		BINDCARD(10, "快捷充值"),

		BINDCARD_COMFIRM(11, "快捷充值确认"),

		BINDCARD_SEARCH(12, "快捷充值查询"),

		WEB_CHARGE_SEARCH(13, "网银充值查询"),

		WEB_CHARGE(14, "网银充值"),

		Aleo_APPLY(17, "分账支付接口-下单接口"),

		AleoSBT_PAY(18, "分账支付接口-确认支付接口"),

		AleoSBT_REC(19, "分账支付接口-确认接收接口"),

		Aleo_REFUND(20, "分账支付接口-退款接口"),

		Aleo_QUERY(21, "分账支付接口-订单查询接口"),

		Aleo_CANCEL(22, "分账支付接口-订单取消接口"),

		TRANSFER(23, "会员转账接口-会员转账接口"),

		CUSTMEMTRANSFER_QUERYORDER(24, "会员转账接口-会员转账查询接口"),

		leoLIT_leoLIT_BILL(25, "账户分账接口-分账接口"),

		leoLIT_leoLIT_BILL_QUERY(26, "账户分账接口-分账查询接口"),

		WITHDRAW(27, "会员提现接口-会员提现接口 （需要商户开通免密提现）"),

		CUSTMEMWITHDRAW_QUERY(28, "会员提现接口-会员提现查询接口"),

		CUSTMEM_ACCCOLLSIGN_SIGN(29, "账户代扣签约接口-账户代扣签约接口 （一次）"),

		CUSTMEM_ACCCOLLSIGN_SIGNQUERY(30, "账户代扣签约接口-账户代扣签约查询接口"),

		CUSTMEM_ACCCOLL_SINGLECOLL(31, "账户代扣接口-账户代扣接口"),

		CUSTMEM_ACCCOLL_SINGLECOLLQUERY(32, "账户代扣接口-单笔代扣查询接口"),

		BATCH_OPEN_ACCOUNT(33, "合作商户存量会员接口-商户存量会员批量接口"),

		BATCH_OPEN_QTY(34, "合作商户存量会员接口-商户存量会员批量结果接口"),

		CUSTMEM_ACCCOLL_leoLITCOLL(35, "账户代扣接口-单笔代扣分账接口"),

		BATCH_leoLIT_BILL(36, "合作商户存量资金迁移接口-商户资金迁移接口"), ;

		public final Integer value;
		public final String alias;

		ThirdPartyPayType(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * 第三方状态
	 * 
	 * @author zarek.wu
	 *
	 */
	public enum ThirdPartyPayStatus {

		Default(-1, "默认"),

		Success(0, "成功"),

		Fail(-101, "失败"),

		PART_SUCCCESS(2, "部分成功"),

		RE_DEAL_PENDING(3, "重新处理中"),

		Enterprise_Succ(10, "申请中");

		public final Integer value;
		public final String alias;

		ThirdPartyPayStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 第三方状态
	 * 
	 * @author zarek.wu
	 *
	 */
	public enum AcceptStatus {

		DEFAULT(0, "默认"),

		SUCCESS(1, "成功");

		public final Integer value;
		public final String alias;

		AcceptStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}
	};

	/**
	 * 分账方式（融宝分账类型，Integer不可随意更改）
	 * 
	 * @author leopard
	 *
	 */
	public enum leolitStyle {

		REAL_TIME(1, "实时"),

		NON_REAL_TIME(2, "非实时");

		public final Integer value;
		public final String alias;

		leolitStyle(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

	/**
	 * @author dongyang.wu 消金通还款状态
	 *
	 */
	public enum XjtRepaymentStatus {

		Default(0, "默认"),

		Success(1, "成功"),

		Fail(2, "失败");

		public final Integer value;
		public final String alias;

		XjtRepaymentStatus(Integer value, String k) {
			this.value = value;
			this.alias = k;
		}

	}

}